﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Dominio;

namespace PresentacionWeb.ControlesDeUsuario
{
    public partial class UCEditProducto : System.Web.UI.UserControl
    {
       
        public string nombre
        {
            get
            {
                return txtNombre.Text;
            }
            set
            {
                txtNombre.Text = value;
            }
        }
        public string idproducto
        {
            get
            {
                return txtIdProducto.Text;
            }
            set
            {
                txtIdProducto.Text = value;
            }
        }

        public string codigo
        {
            get
            {
                return txtCodigo.Text;
            }
            set
            {
                txtCodigo.Text = value;
            }
        }
        public string descripcion
        {
            get
            {
                return txtDescripcion.Text;
            }
            set
            {
                txtDescripcion.Text = value;
            }
        }
        public string fabricante
        {
            get
            {
                return txtFabricante.Text;
            }
            set
            {
                txtFabricante.Text = value;
            }
        }
        public int idcategoria
        {
            get
            {
                return int.Parse(ddlCategorias.SelectedItem.Value);
            }
            set
            {
                ddlCategorias.Items.FindByValue(idcategoria.ToString()).Selected = true;
            }
        }

        public decimal precio
        {
            get
            {
                return decimal.Parse(txtPrecio.Text);
            }
            set
            {
                txtPrecio.Text = value.ToString();
            }
        }
        public List<BLFoto_Producto> fotos
        {
            set 
            {
                fotos = value;
                cargarFotos(value);
            }
            get
            {
                return fotos;
            }
        }
        public byte[] video
        {
            get
            {
                return video;
            }
            set
            {
                video = value;
            }
        }

        private AdministracionHandler admin;

        private void cargarFotos(List<BLFoto_Producto> listaFotos)
        {
            PlaceHolderFotos.Controls.Clear();
            foreach(BLFoto_Producto fotoprod in listaFotos)
            {
                UCImagenProducto imgp = (UCImagenProducto)LoadControl("~/ControlesDeUsuario/UCImagenProducto.ascx"); 
                imgp.idFoto= fotoprod.FotoId;
                imgp.imagen=fotoprod.FotoImage;
                imgp.descripcion = fotoprod.FotoDescripcion;
                PlaceHolderFotos.Controls.Add(imgp);
            }

        }

        private List<UCImagenProducto> ucimagenes;

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                admin = new FabricaConcreta().getAdministracionHandler();
                foreach(BLCategoria cat in admin.getBLCategorias())
                {
                    ddlCategorias.Items.Add(new ListItem(cat.CatDescripcion, cat.CatId.ToString()));
                }
            //    ucimagenes = new List<UCImagenProducto>();
            //    ViewState.Add("PlaceHolderImagenes",PlaceHolderFotos);
            }
            
            //PlaceHolderFotos = (PlaceHolder)ViewState["PlaceHolderImagenes"];
            //foreach (Control uci in PlaceHolderFotos.Controls)
            //{
            //    PlaceHolderFotos.Controls.Add((UCImagenProducto)uci);
            //}
        }

       
        protected void btnAddFoto_Click(object sender, EventArgs e)
        {
            if (fpFoto.HasFile)
            {
                HttpPostedFile mifichero = fpFoto.PostedFile;
                // Longitud en Kb
                double Kb = mifichero.ContentLength / 1024;
                // Nombre del fichero
                string nombreFichero = mifichero.FileName;
                // El tipo mime
                string mimeType = mifichero.ContentType;
                // El FileStream correspondiente
                //FileStream stream = (FileStream)mifichero.InputStream;

                // Y finalmente guardar el resultado
                //mifichero.SaveAs(Server.MapPath("~/Upload"));



                UCImagenProducto ucimage = (UCImagenProducto)LoadControl("~/ControlesDeUsuario/UCImagenProducto.ascx");
                string GetFile = System.IO.Path.GetFileName(fpFoto.PostedFile.FileName);
                string SaveLocation = Server.MapPath("Tmp/" + GetFile);
                Image img = new Image();
                try
                {
                    fpFoto.PostedFile.SaveAs(SaveLocation);
                    Session["UploadPath"] = SaveLocation;
                    img.ImageUrl = Session["UploadPath"].ToString();
                    //ucimage.imagen = mifichero.InputStream.ToByte();
                    //ucimage.imagen.Width = 328;
                    //ucimage.imagen.Height = 86;


                    ucimage.cbChecked = false;
                    ucimage.descripcion = txtDescripcion.Text;
                    //((List<UCImagenProducto>) ViewState["listaUCImagen"]).Add(ucimage);
                    PlaceHolderFotos.Controls.Add(ucimage);
                    //SaveViewState();
                }
                catch (Exception ex)
                {

                }
            }
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            foreach (Control c in PlaceHolderFotos.Controls)
            {
                if (((UCImagenProducto)c).cbChecked)
                {
                    //borrar foto de producto.
                    PlaceHolderFotos.Controls.Remove(c);
                }
            }
        }

        public void clearControl()
        {
            foreach (Control con in this.Controls)
            {
                if (con.GetType().Equals(new TextBox().GetType()))
                {
                    ((TextBox)con).Text = "";
                }
                else if (con.GetType().Equals(new FileUpload().GetType()))
                {

                }
            }
            foreach (UCImagenProducto imc in PlaceHolderFotos.Controls)
            {
                PlaceHolderFotos.Controls.Remove(imc);
            }
        }
    }
}